Machine-to-Machine communications (M2M) is a relatively recent development in the wireless communication arts, which by many estimates is poised for explosive growth. M2M communications (or simply, “M2M”) is the networking of intelligent, communications-enabled remote assets via an information technology infrastructure, including for example, cellular wireless communication networks. M2M allows information to be exchanged automatically without human intervention, and covers a broad range of technologies and applications.
In many of these applications, remote devices monitor physical conditions (e.g., temperature, location, consumption/inventory, light, movement/acceleration, altitude, and speed), or health status (e.g., heart rate, body temperature, and the like), and report the conditions to a central application.
Remote devices executing M2M applications may include sensors and/or processing devices embedded in car and truck fleets, utility meters, copiers/printers, kiosks, security and fire alarm systems, ventilation and air-conditioning sensors, medical devices, fitness monitors, CCTV cameras, and the like. M2M network applications receiving data from M2M device applications executing on such remote devices may relate to security (access control, fire and burglar alarms), tracking and tracing (fleet management, inventory control, traceable animal collars), metering (power, gas, water), consumer devices (navigation units, e-books, fitness monitors), healthcare, and the like. In general, a remote device may execute one or more device applications. Each device application is identified by a unique application identifier.
Standards for the M2M resources and protocols in wireless networks are evolving. A M2M architecture provides a generic set of capabilities for M2M services, independently of the underlying network. Network applications may then be written to take advantage of these services, such as device discovery, device registration, application registration, subscription management, notification management, device location, device management, application life cycle management, communications primitives such as read and write requests, and the like.
In some M2M scenarios, a typical need is for a network application to exchange information with (e.g., periodically collect data from) all, or a large number of, related device applications. For example, a network application for utility metering instructs all remote devices (i.e., automated meters) in a certain region to report a reading, or a network application for fleet management instructs all remote devices (i.e., navigation and engine monitoring devices embedded in trucks) to report a variety of status parameters (location, speed, engine temperature, etc.).
Such network applications typically first discover all remote devices in the relevant region, and then also typically know when they are registered or online so that the network application can communicate with them. In order to receive registration status, the network application must subscribe to the registration status after it discovers the remote devices. Discovery is essential so that the network application can know where to send the subscription for the registration status. There can be thousands of utility meters in a region, or trucks on the roads at any given time. Thus, it is clear that the overhead for network applications monitoring and communicating with large numbers of devices can be immense.